package com.mogujie.tt.ui.activity;

import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Settings;
import android.text.Editable;
import android.text.Selection;
import android.text.TextUtils;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.mogujie.tt.DB.sp.LoginSp;
import com.mogujie.tt.DB.sp.SystemConfigSp;
import com.mogujie.tt.R;
import com.mogujie.tt.config.IntentConstant;
import com.mogujie.tt.config.SysConstant;
import com.mogujie.tt.ui.adapter.QuanzQzPublishGridAdapter;
import com.mogujie.tt.ui.adapter.album.ImageItem;
import com.mogujie.tt.ui.base.TTBaseActivity;
import com.mogujie.tt.ui.helper.Emoparser;
import com.mogujie.tt.ui.widget.AndroidBug5497Workaround;
import com.mogujie.tt.ui.widget.CustomEditView;
import com.mogujie.tt.ui.widget.EmoGridView;
import com.mogujie.tt.ui.widget.PublishLayout;
import com.mogujie.tt.ui.widget.PublishLayout.SoftListener;
import com.mogujie.tt.ui.widget.PublishLayout.SoftState;
import com.mogujie.tt.ui.widget.QuanzMypotoGridDetail;
import com.mogujie.tt.ui.widget.QuanzQzBimp;
import com.mogujie.tt.ui.widget.QuanzQzMessageDetail;
import com.mogujie.tt.ui.widget.QuanzQzReply;
import com.mogujie.tt.utils.CommonUtil;
import com.mogujie.tt.utils.FileUtil;
import com.mogujie.tt.utils.GETUtil;
import com.mogujie.tt.utils.TestImage;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import de.greenrobot.event.EventBus;


/**
 * Created by 50281 on 2015/9/18.
 */
public class QzPublishFragmentActivity extends TTBaseActivity implements
        View.OnClickListener,
        SoftListener {

    private File[] file1=new File[9];
    private ImageView emo_btn;
    private ImageView take_photo;
    private ImageView photo;
    private EmoGridView emoGridView = null;
    private CustomEditView messageEdt = null;
    private GridView gridView;
    private QuanzQzPublishGridAdapter adapter;
    private QuanzQzBimp quanzQzBimp;
    private String login_name;
    private String login_password;
    private String Type = "post";
    private String Attach_id=null;
    private Map<String, File> files=null;
    String camera_path = "";

    private AndroidBug5497Workaround androidBug5497Workaround;
    private LinearLayout emoLayout = null;


    private InputMethodManager inputManager = null;

    //键盘布局相关参数
    int rootBottom = Integer.MIN_VALUE, keyboardHeight = 0;
    switchInputMethodReceiver receiver;
    private String currentInputMethod;
    SoftState keyboard_show ;
    static int edit_height=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initView();
        Listen_keyboard();
    }

    public void triggerEvent(QuanzQzMessageDetail event) {
        EventBus.getDefault().postSticky(event);
    }
    public void triggerEvent1(QuanzMypotoGridDetail event){
        EventBus.getDefault().postSticky(event);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.left_btn:
            case R.id.left_txt:
                dialog1_1();
               // finish();
                break;
            case R.id.right_txt:
                //dialog1_1();
                break;
            case R.id.show_emo_btn_publish:
                if (keyboardHeight != 0) {
                   // QzPublishFragmentActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
                }
                if (emoLayout.getVisibility() == View.VISIBLE) {
                    if (!messageEdt.hasFocus()) {
                        messageEdt.requestFocus();
                    }
                    emoLayout.setVisibility(View.GONE);
                    inputManager.toggleSoftInputFromWindow(messageEdt.getWindowToken(), 1, 0);
                    if (keyboardHeight == 0) {
                        emoLayout.setVisibility(View.GONE);
                    }

                } else if (emoLayout.getVisibility() == View.GONE) {
                    inputManager.hideSoftInputFromWindow(messageEdt.getWindowToken(), 0);
                    emoLayout.setVisibility(View.VISIBLE);
                    emoGridView.setVisibility(View.VISIBLE);

                }
                break;
            case R.id.take_phote_btn_publish:
                if (quanzQzBimp.drr.size() > 8) {
                    Toast.makeText(QzPublishFragmentActivity.this,
                            "最多发表" + SysConstant.MAX_SELECT_IMAGE_COUNT + "张图片",
                            Toast.LENGTH_LONG).show();
                    break;
                }


                Intent intent_2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                camera_path = CommonUtil.getImageSavePath(String.valueOf(System
                        .currentTimeMillis())
                        + ".jpg");
                intent_2.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(camera_path)));
                startActivityForResult(intent_2, SysConstant.CAMERA_WITH_DATA);
                break;
            case R.id.photo_btn:
                Intent intent = new Intent(QzPublishFragmentActivity.this, PickPhotoActivity.class);
                intent.putExtra(IntentConstant.PUBLISH_PHOTO, "1");
                startActivityForResult(intent, SysConstant.ALBUM_BACK_DATA);
                QzPublishFragmentActivity.this.overridePendingTransition(R.anim.tt_album_enter, R.anim.tt_stay);
                break;
            case R.id.publish_text:
                if(emoLayout.getVisibility() == View.VISIBLE)
                    emoLayout.setVisibility(View.GONE);
                break;

            case R.id.right_txt1:
                rightTitleTxt.setEnabled(false);
                getEdit = messageEdt.getText().toString();
                login_name = LoginSp.instance().getLoginIdentity().getLoginName();
                login_password = LoginSp.instance().getLoginIdentity().getPwd();
                    new AsyncTask<String, Void, Object>() {
                        protected void onPostExecute(Object result) {
                            super.onPostExecute(result);
                            if ("qwe".equals(result.toString())){
                                Toast.makeText(QzPublishFragmentActivity.this,"发表的内容不能为空，请输入",Toast.LENGTH_SHORT).show();
                                rightTitleTxt.setEnabled(true);
                            }
                            if ("".equals(result)||result==null){
                                rightTitleTxt.setEnabled(true);
                                return;
                            }
                            try {
                                JSONObject status = new JSONObject(result.toString());
                                System.out.println("4444444444===" + result);
                                if ("1".equals(status.getString("status"))) {
                                    System.out.println("444444444...");
                                    JSONObject res = status.getJSONObject("result");

                                    QuanzQzMessageDetail messageDetail = new QuanzQzMessageDetail();
                                    messageDetail.id = 0;
                                    messageDetail.friendId = Integer.parseInt(res.getString("feed_id"));
                                    messageDetail.userId = res.getString("uid");
                                    messageDetail.photo = res.getString("avatar_middle");
                                    messageDetail.shareType = 0;
                                    messageDetail.name = res.getString("uname");
                                    messageDetail.linkUrl = "";
                                    messageDetail.contentText = res.getString("content");
                                    messageDetail.replyCount = 1;
                                    if (res.getString("type").equals("post")) {
                                        messageDetail.images = "";
                                    } else if (res.getString("type").equals("postimage")) {
                                        if (res.getString("has_attach").equals("0")) {
                                            messageDetail.images = "";
                                        } else if (res.getString("has_attach").equals("1")) {
                                            String attach = res.getString("attach");
                                            messageDetail.images = attach.toString().replace("\\", "");
                                        }
                                    } else {
                                        messageDetail.images = "";
                                    }
                                    messageDetail.sendDate = res.getString("ctime") + ":00";
                                    messageDetail.favourName = "";
                                    messageDetail.favour = "";
                                    ArrayList<QuanzQzReply> list_reply = new ArrayList<QuanzQzReply>();
                                    messageDetail.replyList = list_reply;

                                    QuanzMypotoGridDetail list11=new QuanzMypotoGridDetail();
                                    list11.setGP("");
                                    if (res.getString("type").equals("post")){
                                        list11.setGphoto("");
                                    }else if (res.getString("type").equals("postimage")){
                                        if (res.getString("has_attach").equals("0")){
                                            list11.setGphoto("");
                                        }else if (res.getString("has_attach").equals("1")){
                                            String attach=res.getString("attach");
                                            list11.setGphoto(attach.toString().replace("\\",""));
                                        }
                                    }else{
                                        list11.setGphoto("");
                                    }
                                    list11.setGimages("");
                                    list11.setType(res.getString("type"));
                                    list11.setGcontentText(res.getString("content"));
                                    list11.setFriendId(Integer.parseInt(res.getString("feed_id")));
                                    triggerEvent1(list11);
                                    triggerEvent(messageDetail);

                                    Toast.makeText(QzPublishFragmentActivity.this, "发表成功", Toast.LENGTH_SHORT).show();

                                    finish();
                                } else {
                                    Toast.makeText(QzPublishFragmentActivity.this, "发表失败", Toast.LENGTH_SHORT).show();
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                        @Override
                        protected Object doInBackground(String... strings) {
                            if (quanzQzBimp.bmp.size()>0) {
                            try {
                                files = new HashMap<String, File>();
                                final Map<String, String> params = new HashMap<String, String>();
                                params.put("feed_id", "0");
                                params.put("uid", String.valueOf(LoginSp.instance().getLoginIdentity().getLoginDepartId()));
                                Type = "postimage";
                                for (int im=0;im<quanzQzBimp.drr.size();im++) {
                                    try {
                                        String path = quanzQzBimp.drr.get(im);
                                        Bitmap bm = quanzQzBimp.revitionImageSize(path);
                                        String newStr = path.substring(
                                                path.lastIndexOf("/") + 1,
                                                path.lastIndexOf("."));
                                        file1[im] = FileUtil.saveBitmap(bm, newStr);
                                        files.put("uploadfile1"+im, file1[im]);
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                    }
                                }
                                String request = TestImage.postImg("http://qz.atmart.cn:4025/uploadImage/UploadServlet.do", params, files);//192.168.10.33:8080
                                System.out.println("7777777"+file1[0]+"   "+file1[1]+"    "+request);
                                files.clear();
                                Ynn(request);
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                            }
                            String result = null;
                            if (Attach_id!=null&&TextUtils.isEmpty(getEdit)){
                                getEdit="分享图片";
                            }
                            if (TextUtils.isEmpty(getEdit)) {
                                return "qwe";
                            } else {
                            try {
                                result = GETUtil.instance().sendGet(GETUtil.instance().getRequestText3("public", "Index", "PostFeed", login_name, login_password, Type, URLEncoder.encode(getEdit, "GBK")
                                        , "public", null, null, Attach_id, null, null, null));
                                System.out.println("7777777" + Type + "     " + Attach_id);
                                return result;
                            } catch (UnsupportedEncodingException e) {
                                e.printStackTrace();
                            }
                            }
                            return result;
                        }
                    }.execute();
                break;
        }
    }

    private boolean Ynn(String result){
        try {
            JSONObject resul = new JSONObject(result.toString());
            System.out.println("7777777"+resul);
            if ("1".equals(resul.getString("status"))){
                Attach_id=resul.getString("data");
            }else if("0".equals(resul.getString("status"))){
                Toast.makeText(QzPublishFragmentActivity.this,"发表失败",Toast.LENGTH_SHORT).show();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return false;
    }
    private String getEdit;


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (RESULT_OK != resultCode)
            return;
        switch (requestCode) {
            case SysConstant.CAMERA_WITH_DATA:
                if (quanzQzBimp.drr.size() < 9 ) {
                    try {
                        load_image(camera_path);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                adapter.setItem(quanzQzBimp);
                adapter.notifyDataSetChanged();
                break;
            case SysConstant.ALBUM_BACK_DATA:
                if(data == null )
                    break;
                List<ImageItem> itemList = (List<ImageItem>)data.getSerializableExtra(IntentConstant.PUBLISH_PHOTO_DATA);
                System.out.println("path111111" + itemList.size());
                for (int count = 0; count < itemList.size(); count++){
                    try {
                        Log.i("sxun", "path:"+itemList.get(count).getImagePath()+"qu size:"+quanzQzBimp.drr.size());
                        load_image(itemList.get(count).getImagePath());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                adapter.setItem(quanzQzBimp);
                adapter.notifyDataSetChanged();
                break;
            case SysConstant.ALBUM_PREVIEW_BACK:
                adapter.notifyDataSetChanged();
                break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getRepeatCount() == 0) {
            //do something...
            if(emoLayout.getVisibility() == View.VISIBLE){
                emoLayout.setVisibility(View.GONE);
            }
            else{
                dialog1_1();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public void onDestroy(){
        quanzQzBimp.max = 0;
        quanzQzBimp.drr.clear();
        quanzQzBimp.bmp.clear();
        super.onDestroy();
    }



    private void dialog1_1(){
        //先new出一个监听器，设置好监听
        AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(QzPublishFragmentActivity.this, android.R.style.Theme_Holo_Light_Dialog));
        LayoutInflater inflater = (LayoutInflater)QzPublishFragmentActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View dialog_view = inflater.inflate(R.layout.tt_custom_dialog, null);
        final EditText editText = (EditText)dialog_view.findViewById(R.id.dialog_edit_content);
        editText.setVisibility(View.GONE);
        TextView textText = (TextView)dialog_view.findViewById(R.id.dialog_title);
        textText.setText("退出编辑？");
        builder.setView(dialog_view);

        builder.setPositiveButton(getString(R.string.tt_ok), new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
                dialog.dismiss();
            }
        });
        builder.setNegativeButton(getString(R.string.tt_cancel), new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        });
        builder.show();
    }

    private EmoGridView.OnEmoGridViewItemClick onEmoGridViewItemClick = new EmoGridView.OnEmoGridViewItemClick() {
        @Override
        public void onItemClick(int facesPos, int viewIndex) {
            int deleteId = (++viewIndex) * (SysConstant.pageSize - 1);
            if (deleteId > Emoparser.getInstance(QzPublishFragmentActivity.this).getResIdList().length) {
                deleteId = Emoparser.getInstance(QzPublishFragmentActivity.this).getResIdList().length;
            }
            if (deleteId == facesPos) {
                String msgContent = messageEdt.getText().toString();
                if (msgContent.isEmpty())
                    return;
                if (msgContent.contains("["))
                    msgContent = msgContent.substring(0, msgContent.lastIndexOf("["));
                messageEdt.setText(msgContent);
            } else {
                int resId = Emoparser.getInstance(QzPublishFragmentActivity.this).getResIdList()[facesPos];
                String pharse = Emoparser.getInstance(QzPublishFragmentActivity.this).getIdPhraseMap()
                        .get(resId);
                int startIndex = messageEdt.getSelectionStart();
                Editable edit = messageEdt.getEditableText();
                if (startIndex < 0 || startIndex >= edit.length()) {
                    if (null != pharse) {
                        edit.append(pharse);
                    }
                } else {
                    if (null != pharse) {
                        edit.insert(startIndex, pharse);
                    }
                }
            }
            Editable edtable = messageEdt.getText();
            int position = edtable.length();
            Selection.setSelection(edtable, position);
        }
    };

    private void initSoftInputMethod() {
        QzPublishFragmentActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        inputManager = (InputMethodManager) QzPublishFragmentActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
    }

    private class switchInputMethodReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals("android.intent.action.INPUT_METHOD_CHANGED")) {
                currentInputMethod = Settings.Secure.getString(QzPublishFragmentActivity.this.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
                SystemConfigSp.instance().setStrConfig(SystemConfigSp.SysCfgDimension.DEFAULTINPUTMETHOD, currentInputMethod);
                int height =  SystemConfigSp.instance().getIntConfig(currentInputMethod);
                if(keyboardHeight!=height)
                {
                    keyboardHeight = height;
                    emoLayout.setVisibility(View.GONE);
                    QzPublishFragmentActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
                    messageEdt.requestFocus();
                    if(keyboardHeight!=0)
                    {
                        // RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) addOthersPanelView.getLayoutParams();
                        //params.height = keyboardHeight;
                    }
                    if(keyboardHeight!=0 && emoLayout.getLayoutParams().height!=keyboardHeight)
                    {
                        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) emoLayout.getLayoutParams();
                        params.height = keyboardHeight;
                    }
                }
                else
                {
                    emoLayout.setVisibility(View.VISIBLE);
                    QzPublishFragmentActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
                    messageEdt.requestFocus();
                }
            }
        }
    }

    private View.OnFocusChangeListener msgEditOnFocusChangeListener = new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                if (keyboardHeight == 0) {
                    emoLayout.setVisibility(View.GONE);
                } else {
                    QzPublishFragmentActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
                }
            }
        }
    };


    /**
     * @Description 初始化界面控件
     * 有点庞大 todo
     */
    private String first;
    private void initView(){
        initSoftInputMethod();
        LayoutInflater.from(this).inflate(R.layout.quanz_publish_fragment_qz, topContentView);

        setLeftButton(R.drawable.tt_top_back);
        setLeftText(getResources().getString(R.string.top_left_back));
        setRightText(getResources().getString(R.string.top_right_publish));
        Intent intent =getIntent();
        first = intent.getStringExtra(IntentConstant.KEY_PEERID);
        topLeftBtn.setOnClickListener(this);
        letTitleTxt.setOnClickListener(this);
        rightTitleTxt.setOnClickListener(this);
        emo_btn     = (ImageView)findViewById(R.id.show_emo_btn_publish);
        take_photo  = (ImageView)findViewById(R.id.take_phote_btn_publish);
        photo       = (ImageView)findViewById(R.id.photo_btn);
        messageEdt  = (CustomEditView)findViewById(R.id.publish_text);
        emoGridView = (EmoGridView)findViewById(R.id.emo_gridview_publish);
        gridView    = (GridView)findViewById(R.id.noScrollgridview);
        adapter     = new QuanzQzPublishGridAdapter(this);
        gridView.setAdapter(adapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Log.i("sxun", "onclick--------------");
                Intent intent_1 = new Intent(QzPublishFragmentActivity.this,
                        PreviewPublishImageActivity.class);
                intent_1.putExtra("ID", i);
                intent_1.putExtra(IntentConstant.PUBLISH_PREVIEW, (Serializable)quanzQzBimp);
                startActivityForResult(intent_1, SysConstant.ALBUM_PREVIEW_BACK);
            }
        });
        emo_btn.setOnClickListener(this);
        take_photo.setOnClickListener(this);
        photo.setOnClickListener(this);
        messageEdt.setOnFocusChangeListener(msgEditOnFocusChangeListener);
        messageEdt.setOnClickListener(this);
        // messageEdt.addTextChangedListener(this);

        emoGridView.setOnEmoGridViewItemClick(onEmoGridViewItemClick);
        emoGridView.setAdapter();

        emoLayout = (LinearLayout)findViewById(R.id.emo_layout_publish);
         LinearLayout.LayoutParams paramEmoLayout = (LinearLayout.LayoutParams) emoLayout.getLayoutParams();
          if (keyboardHeight > 0) {
            paramEmoLayout.height = keyboardHeight;
            emoLayout.setLayoutParams(paramEmoLayout);
           }



    }

    /*
     *设置键盘监听 改变底部菜单栏布局
     *
     */
    public void Listen_keyboard(){
        final PublishLayout activityRootView = (PublishLayout) findViewById(R.id.publish_layout);
        activityRootView.setSoftListener(this);

    }

    @Override
    public void onSoftChange(SoftState softState, int softHeight) {
        Log.d("sxun", "SoftState:" + softState + ";softHeight:" + softHeight);
        SoftState keyboard_show = softState;
        if (softState == SoftState.SHOW && softHeight >0){
            keyboardHeight=softHeight;
            LinearLayout.LayoutParams paramEmoLayout = (LinearLayout.LayoutParams) emoLayout.getLayoutParams();
            if (keyboardHeight > 0) {
                paramEmoLayout.height = keyboardHeight;
                emoLayout.setLayoutParams(paramEmoLayout);
            }

            if (edit_height == 0){
                int height = this.getWindowManager().getDefaultDisplay().getHeight();
                edit_height = height - softHeight - 150;
                ViewGroup.LayoutParams layoutParams = messageEdt.getLayoutParams();
                layoutParams.height = edit_height;
                messageEdt.setLayoutParams(layoutParams);
                Log.i("sxun","edit height:"+edit_height);
            }
//            if (emoLayout.getVisibility()== View.VISIBLE){
//                paramEmoLayout.height = 0;
//                emoLayout.setLayoutParams(paramEmoLayout);
//                emoLayout.setVisibility(View.GONE);
//                emoLayout.setVisibility(View.VISIBLE);
//            }

        }else{
            //emoLayout.setVisibility(View.GONE);
        }

    }

    /*
    @parm path  image path
     */

    public void load_image(String path) throws IOException {
        if(quanzQzBimp.drr.size()<9) {
            quanzQzBimp.drr.add(path);
            Bitmap bm = quanzQzBimp.revitionImageSize(path);
            quanzQzBimp.bmp.add(bm);
            String newStr = path.substring(
                    path.lastIndexOf("/") + 1,
                    path.lastIndexOf("."));
            FileUtil.saveBitmap(bm, "" + newStr);
            quanzQzBimp.max += 1;
        }
    }


}

